part of "../file_system.dart";

///
extension PathStr on String {
  bool get isDirectory =>
      FileSystemEntity.typeSync(this) == FileSystemEntityType.directory;
  bool get isFile =>
      FileSystemEntity.typeSync(this) == FileSystemEntityType.file;

  // 比如文件，就是包含后缀名的形式
  String get fullname => split("/").last;
  String get shortName => fullname.split(".").first;

  // 转移到上一级文件夹
  String pop() => (split("/")..removeLast()).join("/");
  // 推进到子文件夹内
  String push(String fullname) {
    String newPath = "$this/$fullname";
    // 如果是文件夹，则以/结束作为区分
    if (newPath.isDirectory) newPath += "/";
    return newPath;
  }

  // 转移到上一级文件夹之后使用push，相当于同级文件夹
  String replace(String fullname) => pop().push(fullname);
}
